Recursive subtyping revealed
نویسندگان
چکیده
Algorithms for checking subtyping between recursive types lie at the core of many programming language implementations. But the fundamental theory of these algorithms and how they relate to simpler declarative speci cations is not widely understood, due in part to the di culty of the available introductions to the area. This tutorial paper o ers an \end-to-end" introduction to recursive types and subtyping algorithms, from basic theory to e cient implementation, set in the unifying mathematical framework of coinduction.
منابع مشابه
Subtyping Recursive Games
Using methods drawn from Game Semantics, we build a sound and computationally adequate model of a simple calculus that includes both subtyping and recursive types. Our model solves recursive type equations up to equality, and is shown to validate a subtyping rule for recursive types proposed by Amadio and Cardelli.
متن کاملA On Subtyping-Relation Completeness, with an Application to Iso-Recursive Types
Well-known techniques exist for proving the soundness of subtyping relations with respect to type safety. However, completeness has not been treated with widely applicable techniques, as far as we’re aware. This paper develops techniques for stating and proving that a subtyping relation is complete with respect to type safety and applies the techniques to the study of iso-recursive subtyping. A...
متن کاملSubtyping Recursive Types Modulo Associative Commutative Products
We study subtyping of recursive types in the presence of associative and commutative products—that is, subtyping modulo a restricted form of type isomorphisms. We show that this relation, which we claim is useful in practice, is a composition of the usual subtyping relation with the recently proposed notion of equality up to associativity and commutativity of products, and we propose an efficie...
متن کاملOn the Theory of Structural Subtyping
We show that the first-order theory of structural subtyping of non-recursive types is decidable. Let Σ be a language consisting of function symbols (representing type constructors) and C a decidable structure in the relational language L containing a binary relation ≤. C represents primitive types; ≤ represents a subtype ordering. We introduce the notion of Σ-term-power of C, which generalizes ...
متن کاملType Inference for the Mixture of Matching and Implicit Subtyping
We present a type inference system for a language with object-oriented features such as polymorphic record access and subtyping. We separate the notion of matching and subtyping in order to avoid di culties caused by recursive type constraints. We will use two kinds of type constraints | record (variant) constraints and subtyping constraints. Then, we discuss simpli cation of such mixed type co...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- J. Funct. Program.
دوره 12 شماره
صفحات -
تاریخ انتشار 2002